package class01


// 生成长度为size的达标数组
// 达标：对于任意的 i<k<j，满足   [i] + [j]  != [k] * 2
func MakeNo(size int) []int {
	if size == 1 {
		return []int{1}
	}
	halfSize := (size + 1) / 2
	base := MakeNo(halfSize)
	// base -> 等长奇数达标来 7+1/2 -》4
	// base -> 等长偶数达标来 8+1/2 -》4
	ans := make([]int, size)
	index := 0
	for ;index<halfSize;index++ {
		ans[index] = base[index]*2-1
	}
	for i:=0; index<size; index,i = index+1, i+1 {
		ans[index] = ans[i]*2
	}
	return ans
}
